package com.sskj.fabi.http;


import com.lzy.okgo.request.GetRequest;
import com.lzy.okgo.request.PostRequest;
import com.sskj.common.base.HttpData;
import com.sskj.fabi.bean.FBPrice;
import com.sskj.fabi.bean.FabiBuyBean;
import com.sskj.fabi.bean.FabiListBean;
import com.sskj.fabi.bean.OrderDetailBean;
import com.sskj.fabi.bean.PayWayBean;
import com.sskj.fabi.bean.PublishBean;
import com.sskj.fabi.bean.RecordTradeBean;
import com.sskj.lib.bean.PageBean;
import com.sskj.lib.bean.SysConfigBean;

import java.util.List;

/**
 * 作者 :吕志豪
 * 简书：https://www.jianshu.com/u/6e525b929aac
 * github：https://github.com/lvzhihao100
 * 描述：
 * 创建时间：2018-10-15 14:08
 */
public interface IHttpService {

    /**
     * 获取C2C出售/购买列表
     */
    PostRequest<HttpData<PageBean<FabiListBean>>> getFbList(int page, int size, boolean isBuy);

    /**
     * 安全中心---支付列表
     */
    GetRequest<HttpData<List<PayWayBean>>> getPayList();

    /**
     * 发布价格
     */
    GetRequest<HttpData<FBPrice>> getFbPrice();

    GetRequest<HttpData<PageBean<RecordTradeBean>>> getRecordList(int p, int page);

    GetRequest<HttpData<PageBean<PublishBean>>> getFaBuRecord(String type, int p, int size);


    /**
     * C2C交易---标记已付款
     */
    PostRequest<HttpData> markPay(String entrustNo);

    /**
     * C2C交易---订单申诉
     */
    PostRequest<HttpData> allegeOrder(String orderNum,String refer,String shop_account, String ss_type, String ss_reason);

    /**
     * C2C交易---确认放行
     */
    PostRequest<HttpData> letGo(String tradeId, String tradePwd);

    /**
     * C2C交易---交易列表--详细
     */
    GetRequest<HttpData<OrderDetailBean>> getOrderDetail( String entrustNo);

    /**
     * 取消C2C匹配到的交易的订单
     *
     * @param orderNum
     * @return
     */
    PostRequest<HttpData> cancelFabiTradeOrder(String orderNum);

    /**
     * 获取C2C发布单子列表
     *
     * @param page
     * @param entrustNo 单号
     */
    PostRequest<HttpData<PageBean<PublishBean>>> getFabiPublishOrderList(int page, int pageSize, String entrustNo);

    /**
     * 取消C2C发布的订单
     *
     * @param isBuy
     * @param id
     * @return
     */
    PostRequest<HttpData> cancelFabiPublishOrder(boolean isBuy, String id);

    /**
     * C2C交易---下单
     */
    PostRequest<HttpData<FabiBuyBean>> coinOrder(String tpwd, String order_no, String total_num, String total_price, int isBuy);


    /**
     * C2C交易发布订单
     */
    PostRequest<HttpData> createFabiOrder(String trans_num, String min_price, String max_price,
                                          String type, int pay_wx, int pay_alipay, int pay_backcard, int paypal, String notes, String pay_pwd);

    /**
     * 获取系统配置信息
     *
     * @param type
     * @return
     */
    PostRequest<HttpData<List<SysConfigBean>>> getSysConfig(int type);


    /**
     * 发布订单列表--撤单
     */
    PostRequest<HttpData> cancleOrder(String type, int id);
}